# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do
  desc "Push a new beta build to TestFlight"
  lane :beta do
    increment_build_number(
      xcodeproj: "Runner.xcodeproj",
      build_number: latest_testflight_build_number + 1
    )
    re = /version:\s([0-9]*\.[0-9]*\.[0-9]*)\+[0-9]*/i
    config = File.read("../../pubspec.yaml")
    version_name = config.match(re).captures[0]
    increment_version_number(version_number: version_name)
    build_app(workspace: "Runner.xcworkspace", scheme: "Runner")
    upload_to_testflight(
      distribute_external: true,
      groups: "FluffyChat Betatest",
      changelog: "This is a release candidate for FluffyChat. Please test if the app is overall in a good condition before we push this to production.",
    )
  end
end

lane :release do
  capture_screenshots                  # generate new screenshots for the App Store
  sync_code_signing(type: "appstore")  # see code signing guide for more information
  build_app(scheme: "Runner")
  upload_to_app_store                  # upload your app to App Store Connect
  slack(message: "Successfully uploaded a new App Store build")
end
